「movable type」と一致するもの

MT4.1UPのカスタムフィールドで演算をする

  • 投稿日:
  • カテゴリ:

MT4.1以上は、SetVar name="hoge" value="hoo" で変数を設定し、GetVarで値を取得でき、option機能、opモディファイアを利用することで、簡単な演算をさせられるので、
※MT opモディファイアの基本的用法については、こちら

これを利用して何か試しに作ってみよかな、
と、今回、ブログ記事アーカイブに適当なカスタムフィールドを作成して、カスタムフィールド内の数値を集計(合計)してみることにしました。

ブログ記事に適当な名前でカスタムフィールドを作成。仮にcustomfield1 としますと、通常MTcustomfield1>というタグで値にアクセスできるようになります。MTタグでブログ記事に設定したカスタムフィールドの集計を求める流れとしては、


  1. 変数の設定、初期化
  2. MTEntryタグ内で、opモディファイアを用いて、customfield1の値を加算
  3. 演算結果を取得

<MTSetVar name="var1" value="0"><MTIgnore>//変数の設定、初期化</MTIgnore>
<MTEntries lastn="9999">
<MTSetVarBlock name="var1" value="$var1" op="+"><MTcustomfield1></MTSetVarBlock>
</MTEntries>
合計:<MTGetVar name="var1"> <MTIgnore>//演算結果の取得</MTIgnore>

これで集計した値が取得できます。 (表示サンプル:2008年11月1日現在、当無料素材倶楽部のトップページ右サイドバーで表示している総素材画像数がそれ)

特定フィールドだけの集計なんてのは、需要がありそうな気もするし、ノンプログラマにとっては、プログラムを直接いじらず、テンプレートタグだけでちゃっちゃと計算できちゃうのは楽チン、なはず。

が、問題が。

  1. アーカイブテンプレートに直接記述しないとワタシの環境では動かない。<MTInclude ~>が効かない。
  2. 後からカスタムフィールドを作成した場合、適当にカスタムフィールドの規定値を設定しても、再構築すれば、各エントリーの情報にその規定値を入れてくれるものではない。1個1個記事を保存しなおさないと、だめみたい。(カスタムフィールドについては、 Entry関連のテーブル内のentry_metaにbinaryで保存されるようなんですが、規定値を設定後、再構築しただけでは、カスタムフィールドの設定情報が保存されているテーブル、mt_fieldの、field_defaultという列から値をひっぱってくるだけで、各エントリー記事のentry_metaに情報が保存されません。ダイナミックパブリッシングだけで、静的なファイルについては試してないけども)
  3. カスタムフィールド設定の際、テンプレートの例として、以下のようなものが管理画面に表示される。
    <MTIfNonEmpty tag="customfield1">
    素材画像点数: <MTcustomfield1>
    </MTIfNonEmpty>
    ところが、ワタシの環境ではカスタムフィールドで
    <MTIfNonEmpty>を記述しても効かない。何でかわからない。
  4. そもそも、SQL文には、一発で集計を出してくる構文(sum()関数)がある。直接DBで演算させずに、タグでエントリーの情報を全部引っ張ってきて配列に入れ、ループで演算させるって、無駄じゃ・・・・

共用サーバーで、2のように、後からフィールドに何か特定の値をつけたしたいなら、カスタムフィールド設定するより、EntryMoreあたりが空いているならそれを使用することにして、ローカルでMT形式ファイルを作成、importして値を追加するような流れが楽ですね、きっと。個人的には、4が一番気になってまして。大して記事がない場合は上記でもOKでしょうけども、直接、SQL文を発行して、求めたほうがいいはず。ただ、カスタムフィールドの場合、SELECT SUM(XX) FROM テーブル名 なんて単純な形で一発集計させられない。何とかしようがあるはずなんだけどな。

追記:使用しているのは、テキストフィールドだけなので、Blob型のバイナリデータを文字列変換後、Replaceで置換して必要なとこだけ切り出せば、SQLで演算できないか?と試してみたんですが、MySQLでは正規表現使用で置換ができず(正規表現なしでいける場合は可能かも)、カスタムフィールドの値をSQLだけで一発集計はできんという結論に落ち着きました。かといって、値を加算するためだけにわざわざループさせるのって馬鹿らしい。さらにmt形式でのインポート・エクスポートを考えるとちょっと遊びたい程度の安易な気持ちで作ったこのフィールドが邪魔くさいのなんのって。というわけで、別フィールドにカスタムフィールドの値だけを移し、phpからクエリで一発集計取得後、キャッシュさせるよう変更しました。

BlogAPIのエンドポイント集

  • 投稿日:
  • カテゴリ:

metaWeblog API、MovableType API、 blogger API を利用して投稿するために必要な各種ブログ API xml-rpc Atom エンドポイント(endpoint)メモ

●XML-RPC

goo ブログのエンドポイント
 http://blog.goo.ne.jp/xmlrpc.php
PwBlogのエンドポイント http://www.pwblog.com/xmlrpc
DTI ブログのエンドポイント http://blog.dtiblog.com/xmlrpc.php
FC2 ブログのエンドポイント http://blog.fc2.com/xmlrpc.php 
NetLaputa ブログのエンドポイント http://blog.netlaputa.ne.jp/rpc/mt-xmlrpc.cgi
News-Handler http://blog.nettribe.org/xmlrpc.php
Seesaa ブログのエンドポイント
http://blog.seesaa.jp/rpc (ssl経由は https://ssl.seesaa.jp/blog/rpc 
ココログのエンドポイント http://app.f.cocolog-nifty.com/t/api
ドリコムのエンドポイント http://blog.drecom.jp/api/xmlrpc
269gのエンドポイント http://269g.jp/rpc
プチモールブログのエンドポイント http://www.petitmall.jp/xmlrpc.php
News Handlerのエンドポイント http://blog.nettribe.org/xmlrpc.php
JUGEMのエンドポイント http://*****.jugem.jp/admin/xmlrpc.php
wordpress.comのエンドポイント http://ユーザー名.wordpress.com/xmlrpc.php
ヤプログのエンドポイント http://www.yaplog.jp/xmlrpc
ブログ人のエンドポイント http://app.blog.ocn.ne.jp/t/api xml-rpc形式
さくらのブログのエンドポイント http://blog.sakura.ne.jp/rpc/
so-net ブログのエンドポイント
http://blog.so-net.ne.jp/_atom/blog (記事用)
http://blog.so-net.ne.jp/_atom/image(画像用)
忍者ブログのエンドポイント
http://ユーザー忍者ブログURL/XMLRPC/

MovableTypeのエンドポイント
http://ドメイン/mtディレクトリ/mt-xmlrpc.cgi
XOOPSのエンドポイント
http://ドメイン/XOOPSのディレクトリ/modules/wordpress/xmlrpc.php
Nucleusのエンドポイント
http://ドメイン/nucleusディレクトリ/xmlrpc/server.php
WP(Word Press)のエンドポイント
xmlrpc.php までのパス ブログのURL/xmlrpc.php

●Atom (REST SOAP)
ライブドアのエンドポイント http://cms.blog.livedoor.com/atom
ブログ人のエンドポイント https://app.blog.ocn.ne.jp/t/atom/weblog atom形式
Bloggerのエンドポイント https://www.blogger.com/atom
アメブロのエンドポイント http://ameblo.jp/servlet/_atom/blog

参考:MT実装のXML-RPCメソッド
http://www.sixapart.jp/movabletype/manual/3.2/mtmanual_programmatic.html

Google Webmastertool Yahoo siteExploler 等のサービスを利用せず、ブラウザからHTTPリクエストを送る方法。

Google
http://www.google.com/webmasters/sitemaps/ping?sitemap=自分のサイトマップURI

Yahoo,ヤフー(YST)
http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=自分のサイトマップURI

http://dokodemo.rankuappu.com/google3a-movable_type.html